package com.gking.processHarvest.service.Role;

import com.baomidou.mybatisplus.extension.service.IService;
import com.gking.processHarvest.common.Res;
import com.gking.processHarvest.entity.Permissions;
import com.gking.processHarvest.entity.Role;
import com.gking.processHarvest.entity.RolePs;
import com.gking.processHarvest.entity.RoleUser;

import java.util.List;

public interface RoleService extends IService<Role> {

    /**
     * 获取角色列表
     *
     * @return s
     */
    public Res<List<Role>> getRoleList();


    /**
     * 获取权限列表
     *
     * @return s
     */
    public Res<List<Permissions>> getPermissionsList();


    /**
     * 获取角色权限详情
     *
     * @param roleId 角色id
     * @return s
     */
    public Res<List<RolePs>> getRolePermissionsDetail(String roleId);


    /**
     * 为角色设置权限
     *
     * @param roleId          角色id
     * @param permissionsList 权限id 列表
     * @return s
     */
    public Res<String> setRolePermissions(String roleId, List<String> permissionsList);


    /**
     * 获取用户角色详情
     *
     * @return s
     */
    public Res<List<RoleUser>> getUserRolesDetail();


    /**
     * 为用户设置角色(为登录用户)
     *
     * @param roleList 角色id 列表
     * @return s
     */
    public Res<String> setUserRoles(List<String> roleList);


    /**
     * 通过userId获取用户的所有角色
     *
     * @param userId 账号
     * @return s
     */
    public List<String> getUserRoleListByUserId(String userId);


    /**
     * 通过角色列表获取权限列表
     *
     * @param roleList 角色列表
     * @return s
     */
    public List<String> getUserPermissionsListByRoles(List<String> roleList);
}
